home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
texte
/
7up_pd
/
tos.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-10-29
|
20KB
|
626 lines
/* TOS.H
Tos Definition Includes
Copyright (c) Borland International 1990
All Rights Reserved.
*/
#if !defined( __TOS )
#define __TOS
typedef struct /* used by Cconrs */
{
unsigned char maxlen;
unsigned char actuallen;
char buffer[255];
} LINE;
typedef struct /* used by Fsetdta, Fgetdta */
{
char d_reserved[21];
unsigned char d_attrib;
unsigned int d_time;
unsigned int d_date;
unsigned long d_length;
char d_fname[14];
} DTA;
typedef struct /* used by Dfree */
{
unsigned long b_free;
unsigned long b_total;
unsigned long b_secsiz;
unsigned long b_clsiz;
} DISKINFO;
typedef struct baspag /* used by Pexec */
{
void *p_lowtpa;
void *p_hitpa;
void *p_tbase;
long p_tlen;
void *p_dbase;
long p_dlen;
void *p_bbase;
long p_blen;
DTA *p_dta;
struct baspag *p_parent;
long p_resrvd0;
char *p_env;
char p_stdfh[6];
char p_resrvd1;
char p_curdrv;
long p_resrvd2[18];
char p_cmdlin[128];
} BASPAG;
typedef struct /* used by Getbpb */
{
int recsiz;
int clsiz;
int clsizb;
int rdlen;
int fsiz;
int fatrec;
int datrec;
int numcl;
int bflags;
} BPB;
typedef struct
{
unsigned int time;
unsigned int date;
} DOSTIME;
typedef struct /* used by Iorec */
{
void *ibuf;
int ibufsiz;
int ibufhd;
int ibuftl;
int ibuflow;
int ibufhi;
} IOREC;
typedef struct /* used by Kbdvbase */
{
void (*kb_midivec)();
void (*kb_vkbderr)();
void (*kb_vmiderr)();
void (*kb_statvec)();
void (*kb_mousevec)();
void (*kb_clockvec)();
void (*kb_joyvec)();
void (*kb_midisys)();
void (*kb_kbdsys)();
} KBDVBASE;
typedef struct /* used by Pexec */
{
unsigned char length;
char command_tail[128];
} COMMAND;
typedef struct /* used by Initmouse */
{
char topmode;
char buttons;
char x_scale;
char y_scale;
int x_max;
int y_max;
int x_start;
int y_start;
} MOUSE;
typedef struct /* used by Prtblk */
{
void *pb_scrptr;
int pb_offset;
int pb_width;
int pb_height;
int pb_left;
int pb_right;
int pb_screz;
int pb_prrez;
void *pb_colptr;
int pb_prtype;
int pb_prport;
void *pb_mask;
} PBDEF;
typedef struct /* used by Keytbl */
{
char *unshift;
char *shift;
char *capslock;
} KEYTAB;
typedef struct __md
{
struct __md *m_link;
void *m_start;
long m_length;
BASPAG *m_own;
} MD;
typedef struct /* used by Getmpb */
{
MD *mp_mfl;
MD *mp_mal;
MD *mp_rover;
} MPB;
typedef struct
{
int (*Bconstat) ();
long (*Bconin) ();
int (*Bcostat) ();
void (*Bconout) ();
long (*Rsconf) ();
IOREC *iorec;
} MAPTAB;
typedef struct
{
MAPTAB *maptab;
int maptabsize;
} BCONMAP;
/* system variable _sysbase (0x4F2L) points to next structure */
typedef struct _syshdr
{
unsigned os_entry; /* $00 BRA to reset handler */
unsigned os_version; /* $02 TOS version number */
void *os_start; /* $04 -> reset handler */
struct _syshdr *os_base; /* $08 -> baseof OS */
void *os_membot; /* $0c -> end BIOS/GEMDOS/VDI ram usage */
void *os_rsv1; /* $10 << unused,reserved >> */
long *os_magic; /* $14 -> GEM memoryusage parm. block */
long os_gendat; /* $18 Date of system build($MMDDYYYY) */
int os_palmode; /* $1c OS configuration bits */
int os_gendatg; /* $1e DOS-format date of systembuild */
/*
The next three fields are only available in TOS versions 1.2 and
greater
*/
void *_root; /* $20 -> base of OS pool */
long *kbshift; /* $24 -> keyboard shift state variable */
BASPAG **_run; /* $28 -> GEMDOS PID of current process */
void *p_rsv2; /* $2c << unused, reserved >> */
} SYSHDR;
/* attributes for Fcreate/Fsfirst/Fsnext: */
#define FA_READONLY 0x01
#define FA_HIDDEN 0x02
#define FA_SYSTEM 0x04
#define FA_VOLUME 0x08
#define FA_SUBDIR 0x10
#define FA_ARCHIVE 0x20
/* Fopen modes: */
#define FO_READ 0
#define FO_WRITE 1
#define FO_RW 2
extern BASPAG *_BasPag;
extern long _PgmSize;
long gemdos( void, ... );
long bios( void, ... );
long xbios( void, ... );
/****** Tos *************************************************************/
void Pterm0( void );
long Cconin( void );
void Cconout( int c );
int Cauxin( void );
void Cauxout( int c );
int Cprnout( int c );
long Crawio( int w );
long Crawcin( void );
long Cnecin( void );
int Cconws( const char *buf );
void Cconrs( LINE *buf );
int Cconis( void );
long Dsetdrv( int drv );
int Cconos( void );
int Cprnos( void );
int Cauxis( void );
int Cauxos( void );
int Dgetdrv( void );
void Fsetdta( DTA *buf );
long Super( void *stack );
unsigned int Tgetdate( void );
unsigned int Tsetdate( unsigned int date );
unsigned int Tgettime( void );
unsigned int Tsettime( unsigned int time );
DTA *Fgetdta( void );
int Sversion( void );
void Ptermres( long keepcnt, int retcode );
int Dfree( DISKINFO *buf, int driveno );
int Dcreate( const char *path );
int Ddelete( const char *path );
int Dsetpath( const char *path );
long Fcreate( const char *filename, int attr );
long Fopen( const char *filename, int mode );
int Fclose( int handle );
long Fread( int handle, long count, void *buf );
long Fwrite( int handle, long count, void *buf );
int Fdelete( const char *filename );
long Fseek( long offset, int handle, int seekmode );
int Fattrib( const char *filename, int wflag, int attrib );
long Fdup( int handle );
int Fforce( int stch, int nonstdh );
int Dgetpath( char *path, int driveno );
void *Malloc( long number );
int Mfree( void *block );
int Mshrink( int zero, void *block, long newsiz );
long Pexec( int mode, char *ptr1, void *ptr2, void *ptr3 );
void Pterm( int retcode );
int Fsfirst( const char *filename, int attr );
int Fsnext( void );
int Frename( int zero, const char *oldname, const char *newname );
int Fdatime( DOSTIME *timeptr, int handle, int wflag );
/****** TOS 030 Gemdos Extension ****************************************/
void *Mxalloc( long number, int mode );
long Maddalt( void *start, long size );
/****** Network Gemdos Extension ****************************************/
long Flock( int handle, int mode, long start, long length );
/****** Bios ************************************************************/
void Getmpb( MPB *ptr );
int Bconstat( int dev );
long Bconin( int dev );
void Bconout( int dev, int c );
long Rwabs( int rwflag, void *buf, int cnt, int recnr, int dev );
void (*Setexc( int number, void (*exchdlr)() )) ();
long Tickcal( void );
BPB *Getbpb( int dev );
long Bcostat( int dev );
long Mediach( int dev );
long Drvmap( void );
long Kbshift( int mode );
/****** XBios ***********************************************************/
void Initmouse( int type, MOUSE *par, void (*mousevec)() );
void *Ssbrk( int count );
void *Physbase( void );
void *Logbase( void );
int Getrez( void );
void Setscreen( void *laddr, void *paddr, int rez );
void Setpalette( void *pallptr );
int Setcolor( int colornum, int color );
int Floprd( void *buf, void *filler, int devno, int sectno,
int trackno, int sideno, int count );
int Flopwr( void *buf, void *filler, int devno, int sectno,
int trackno, int sideno, int count );
int Flopfmt( void *buf, void *filler, int devno, int spt, int trackno,
int sideno, int interlv, long magic, int virgin );
void Midiws( int cnt, void *ptr );
void Mfpint( int erno, void (*vector)() );
IOREC *Iorec( int dev );
long Rsconf( int baud, int ctr, int ucr, int rsr, int tsr, int scr );
KEYTAB *Keytbl( void *unshift, void *shift, void *capslock );
long Random( void );
void Protobt( void *buf, long serialno, int disktype, int execflag );
int Flopver( void *buf, void *filler, int devno, int sectno,
int trackno, int sideno, int count );
void Scrdmp( void );
int Cursconf( int func, int rate );
void Settime( unsigned long time );
unsigned long Gettime( void );
void Bioskeys( void );
void Ikbdws( int count, void *ptr );
void Jdisint( int number );
void Jenabint( int number );
char Giaccess( char data, int regno );
void Offgibit( int bitno );
void Ongibit( int bitno );
void Xbtimer( int timer, int control, int data, void (*vector)() );
void *Dosound( void *buf );
int Setprt( int config );
KBDVBASE *Kbdvbase( void );
int Kbrate( int initial, int repeat );
void Prtblk( PBDEF *par );
void Vsync( void );
long Supexec( long (*func)() );
void Puntaes( void );
int Floprate( int devno, int newrate );
int Blitmode( int mode );
/* TOS030 XBios */
int DMAread( long sector, int count, void *buffer, int devno );
int DMAwrite( long sector, int count, void *buffer, int devno );
int NVMaccess( int opcode, int start, int count, void *buffer );
long Bconmap( int devno );
int Esetshift( int shftMode );
int Egetshift( void );
int EsetBank( int bankNum );
int EsetColor( int colorNum, int color );
void EsetPalette( int colorNum, int count, int *palettePtr );
void EgetPalette( int colorNum, int count, int *palettePtr );
int EsetGray( int swtch );
int EsetSmear( int swtch );
/* MinT Gemdos */
/* signal handling */
#define NSIG 31 /* number of signals recognized */
#define SIGNULL 0 /* not really a signal */
#define SIGHUP 1 /* hangup signal */
#define SIGINT 2 /* sent by ^C */
#define SIGQUIT 3 /* quit signal */
#define SIGILL 4 /* illegal instruction */
#define SIGTRAP 5 /* trace trap */
#define SIGABRT 6 /* abort signal */
#define SIGPRIV 7 /* privilege violation */
#define SIGFPE 8 /* divide by zero */
#define SIGKILL 9 /* cannot be ignored */
#define SIGBUS 10 /* bus error */
#define SIGSEGV 11 /* illegal memory reference */
#define SIGSYS 12 /* bad argument to a system call */
#define SIGPIPE 13 /* broken pipe */
#define SIGALRM 14 /* alarm clock */
#define SIGTERM 15 /* software termination signal */
#define SIGURG 16 /* urgent condition on I/O channel */
#define SIGSTOP 17 /* stop signal not from terminal */
#define SIGTSTP 18 /* stop signal from terminal */
#define SIGCONT 19 /* continue stopped process */
#define SIGCHLD 20 /* child stopped or exited */
#define SIGTTIN 21 /* read by background process */
#define SIGTTOU 22 /* write by background process */
#define SIGIO 23 /* I/O possible on a descriptor */
#define SIGXCPU 24 /* CPU time exhausted */
#define SIGXFSZ 25 /* file size limited exceeded */
#define SIGVTALRM 26 /* virtual timer alarm */
#define SIGPROF 27 /* profiling timer expired */
#define SIGWINCH 28 /* window size changed */
#define SIGUSR1 29 /* user signal 1 */
#define SIGUSR2 30 /* user signal 2 */
#define SIG_DFL 0 /* default signal handler */
#define SIG_IGN 1 /* ignore the signal */
/* file types */
#define S_IFMT 0170000 /* mask to select file type */
#define S_IFCHR 0020000 /* BIOS special file */
#define S_IFDIR 0040000 /* directory file */
#define S_IFREG 0100000 /* regular file */
#define S_IFIFO 0120000 /* FIFO */
#define S_IMEM 0140000 /* memory region or process */
#define S_IFLNK 0160000 /* symbolic link */
/* special bits: setuid, setgid, sticky bit */
#define S_ISUID 04000
#define S_ISGID 02000
#define S_ISVTX 01000
/* file access modes for user, group, and other*/
#define S_IRUSR 0400
#define S_IWUSR 0200
#define S_IXUSR 0100
#define S_IRGRP 0040
#define S_IWGRP 0020
#define S_IXGRP 0010
#define S_IROTH 0004
#define S_IWOTH 0002
#define S_IXOTH 0001
#define DEFAULT_DIRMODE (0777)
#define DEFAULT_MODE (0666)
typedef struct
{
long msg1;
long msg2;
int pid;
} MSG;
typedef struct
{
unsigned int mode;
long index;
unsigned int dev;
unsigned int reserved1;
unsigned int nlink;
unsigned int uid;
unsigned int gid;
long size;
long blksize;
long nblocks;
int mtime;
int mdate;
int atime;
int adate;
int ctime;
int cdate;
int attr;
int reserved2;
long reserved3[2];
} XATTR;
#define SA_NOCLDSTOP 1
typedef struct
{
void (*sa_handler)( long sig );
long sa_mask;
int sa_flags;
} SIGACTION;
int Syield( void );
int Fpipe( int *usrh );
int Fcntl( int f, long arg, int cmd );
long Finstat( int f );
long Foutstat( int f );
long Fgetchar( int f, int mode );
long Fputchar( int f, long c, int mode );
long Pwait( void );
int Pnice( int delta );
int Pgetpid( void );
int Pgetppid( void );
int Pgetpgrp( void );
int Psetpgrp( int pid, int newgrp );
int Pgetuid( void );
int Psetuid( int id );
int Pkill( int pid, int sig );
void *Psignal( int sig, void *handler );
int Pvfork( void );
int Pgetgid( void );
int Psetgid( int id );
long Psigblock( long mask );
long Psigsetmask( long mask );
long Pusrval( long arg );
int Pdomain( int newdom );
void Psigreturn( void );
int Pfork( void );
long Pwait3( int flag, long *rusage );
int Fselect( unsigned int timeout, long *rfds, long *wfds, long *xfds );
void Prusage( long *r );
long Psetlimit( int lim, long value );
long Talarm( long secs );
void Pause( void );
long Sysconf( int n );
long Psigpending( void );
long Dpathconf( char *name, int n );
long Pmsg( int mode, long mbox, MSG *msg );
long Fmidipipe( int pid, int in, int out );
int Prenice( int pid, int delta );
long Dopendir( char *name, int flag );
long Dreaddir( int buflen, long dir, char *buf );
long Drewinddir( long dir );
long Dclosedir( long dir );
long Fxattr( int flag, char *name, XATTR *buf );
long Flink( char *oldname, char *newname );
long Fsymlink( char *oldname, char *newname );
long Freadlink( int size, char *buf, char *name );
long Dcntl( int cmd, char *name, long arg );
long Fchown( char *name, int uid, int gid );
long Fchmod( char *name, int mode );
long Pumask( unsigned int mode );
long Psemaphore( int mode, long id, long timeout );
long Dlock( int mode, int drive );
void Psigpause( unsigned long mask );
long Psigaction( int sig, SIGACTION *act, SIGACTION *oact );
int Pgeteuid( void );
int Pgetegid( void );
/* Falcon */
#define VERTFLAG 0x0100
#define STMODES 0x0080
#define OVERSCAN 0x0040
#define PAL 0x0020
#define VGA 0x0010
#define TV 0x0000
#define COL80 0x08
#define COL40 0x00
#define BPS16 4
#define BPS8 3
#define BPS4 2
#define BPS2 1
#define BPS1 0
#define NUMCOLS 7
long locksnd( void );
long unlocksnd( void );
long soundcmd( int mode, int data );
long setbuffer( int reg, void *begaddr, void *endaddr );
long setsndmode( int mode );
long settracks( int playtracks, int rectracks );
long setmontracks( int montrack );
long setinterrupt( int src_inter, int cause );
long buffoper( int mode );
long dsptristate( int dspxmit, int dsprec );
long gpio( int mode, int data );
long devconnect( int src, int dst, int srcclk, int prescale,
int protocol );
long sndstatus( int reset );
long buffptr( long *ptr );
int Dsp_LoadProg( char *file, int ability, char *buffer );
long Dsp_LodToBinary( char *file, char *codeptr );
void Dsp_DoBlock( char *data_in, long size_in, char *data_out,
long size_out );
void Dsp_BlkHandShake( char *data_in, long size_in, char *data_out,
long size_out );
void Dsp_BlkUnpacked( long *data_in, long size_in, long *data_out,
long size_out );
void Dsp_InStream( char *data_in, long block_size, long num_blocks,
long *blocks_done );
void Dsp_OutStream( char *data_out, long block_size, long num_blocks,
long *blocks_done );
void Dsp_IOStream( char *data_in, char *data_out, long block_insize,
long block_outsize, long num_blocks,
long *blocks_done );
void Dsp_RemoveInterrupts( int mask );
int Dsp_GetWordSize( void );
int Dsp_Lock( void );
void Dsp_Unlock( void );
void Dsp_Available( long *xavailable, long *yavailable );
int Dsp_Reserve( long xreserve, long yreserve );
void Dsp_ExecProg( char *codeptr, long codesize, int ability );
void Dsp_ExecBoot( char *codeptr, long codesize, int ability );
void Dsp_TriggerHC( int vector );
int Dsp_RequestUniqueAbility( void );
int Dsp_GetProgAbility( void );
void Dsp_FlushSubroutines( void );
int Dsp_LoadSubroutine( char *codeptr, long codesize, int ability );
int Dsp_InqSubrAbility( int ability );
int Dsp_RunSubroutine( int handle );
int Dsp_Hf0( int flag );
int Dsp_Hf1( int flag );
int Dsp_Hf2( void );
int Dsp_Hf3( void );
void Dsp_BlkWords( void *data_in, long size_in, void *data_out,
long size_out );
void Dsp_BlkBytes( void *data_in, long size_in, void *data_out,
long size_out );
char Dsp_HStat( void );
void Dsp_SetVectors( void (*receiver)( ), long (*transmitter)( ));
int setmode( int modecode );
int mon_type( void );
void ext_sync( int flag );
#endif
/************************************************************************/